import { NgModule } from '@angular/core';
import { RouterModule } from "@angular/router";
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MdlModule } from '@angular-mdl/core';
import {
    TreeModule, BreadcrumbModule, ToolbarModule, InputTextModule, SelectButtonModule,
    InputTextareaModule, PanelModule, ButtonModule, AutoCompleteModule, InputSwitchModule,
    ConfirmDialogModule, ConfirmationService, CarouselModule, TabViewModule, PanelMenuModule, SharedModule,
    ToggleButtonModule, DropdownModule, CheckboxModule, TooltipModule, DialogModule, CalendarModule, RadioButtonModule
} from 'primeng/primeng';
import { MegaMenuModule } from 'primeng/megamenu';
import { TreeTableModule } from 'primeng/treetable';
import { MenubarModule } from 'primeng/menubar';
import { TableModule } from 'primeng/table';
import { QkSharedModule } from '../common/module/qkshare.module';
import { reportRoutes } from './report.routes';
import { ReportComponent } from './report.component';
import { ReportStandardComponent } from './statis/standard/report-standard.component';
import { ReportConfigService } from './config/report-config.service';
import { ReportService } from './report.service';
import { ReportStandardCondComponent } from './statis/standard/report-standard-cond/report-standard-cond.component';
import { ReportSearchListComponent } from './statis/standard/report-standard-list/report-search-list.component';
import { ReportStatisListComponent } from './statis/standard/report-standard-list/report-statis-list.component';
import { ReportConfigComponent } from './config/report-config.component'

import { ReportConfigBaseComponent } from './config/base/report-config-base.component';
import { ReportConfigCreateComponent } from './config/base/report-config-create.component';
import { ReportConfigCondComponent } from './config/cond/report-config-cond.component';
import { ReportConfigFieldAddComponent } from './config/base/report-config-fieldadd.component';
import { ReportConfigAuthFilterComponent } from './config/auth/report-config-authfilter.component';
import { ReportConfigStatisComponent } from './config/statis/report-config-statis.component';
import { ReportStandardDetailComponent } from './statis/standard/report-standard-list/report-standard-detail.component'; 
@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule,
        CommonModule,
        MdlModule,
        TreeModule,
        BreadcrumbModule,
        ToolbarModule,
        PanelModule,
        ButtonModule,
        AutoCompleteModule,
        InputTextModule,
        InputTextareaModule,
        TabViewModule,
        CarouselModule,
        PanelMenuModule,
        SharedModule,
        QkSharedModule,
        SelectButtonModule,
        InputSwitchModule,
        ConfirmDialogModule,
        ToggleButtonModule,
        DropdownModule,
        CheckboxModule,
        TooltipModule,
        DialogModule,
        CalendarModule,
        TableModule,
        MenubarModule,
        RadioButtonModule,
        MegaMenuModule,
        TreeTableModule,
        RouterModule.forChild(reportRoutes)
    ],
    declarations: [
        ReportComponent,
        ReportStandardComponent,
        ReportStandardCondComponent,
        ReportSearchListComponent,
        ReportStatisListComponent,
        ReportConfigComponent,
        ReportConfigFieldAddComponent,
        ReportConfigCreateComponent,
        ReportConfigBaseComponent,
        ReportConfigCondComponent,
        ReportConfigAuthFilterComponent,
        ReportConfigStatisComponent,
        ReportStandardDetailComponent
    ],
    entryComponents: [
        ReportConfigCreateComponent,
        ReportConfigFieldAddComponent,
        ReportStandardDetailComponent
    ],
    exports: [
    ],
    providers: [
        ConfirmationService,
        ReportService,
        ReportConfigService
    ]
})
export class ReportModule { }
